#include <stdio.h>

int binarySearch(int arr[], int l, int r, int x);

int main(int argc, char const *argv[])
{
    int arr[] = { 2, 3, 4, 10, 40 };
    int n = sizeof(arr) / sizeof(arr[0]);
    int x = 1;
    int result = binarySearch(arr, 0, n - 1, x);
    printf("Element is present at index %d", result);
    return 0;
}

int binarySearch(int arr[], int l, int r, int x)
{
    if (r >= l)
    {
        int mid = l + (r - l) / 2;

        if (arr[mid] == x)
            return mid;

        if (arr[mid] > x)
            return binarySearch(arr, l, mid - 1, x);

        return binarySearch(arr, mid + 1, r, x);
    }

    return -1;
}